The invention relates generally to a live-migration of an operating system and an application from a source computing system to a target computing system. The invention relates further to a source computing system for live-migration and a target computing system for live-migration, a data processing program, and a computer program product.
Live-migration is a known feature in backup and load balancing tools that allow moving data and an operating system from a source to a target machine or computer with practically no downtime of the application which is running. This feature is particularly important for production servers, especially in cloud environments, where productive applications have to be active and accessible as much as possible, and where a simple unavailability of the application could cause trouble and financial losses for a company.
The general technology of live-migration is known and works fine in virtualized environments using known products like VMware or Hyper-V, but they do not work in physical environments. The reason of this limitation is that it is impossible to migrate a memory status of physical systems between a first or source system, and a second or target system. The reason is due to the fact that techniques exist for disk migration, but not for a migration of a memory that is in full use. That means that an application can have its persistent data, i.e., the data on a disk migrated to a target system, but not the memory status of underlying systems running the applications. In other terms, when a migration is performed, the disk may be in a consistent state, but not the memory used by the application or supporting other programs like the operating system. Typically, the following sequence may be performed, incurring the following problems: Firstly, an application may have to be restarted on the target machine. However, transactions in progress on the source machine are lost. Because the memory status of the application on the source system is lost, the application will have to get all configuration status information from the disk to restart. However, these do not mirror a complete status of the source system because the memory status is not available as part of the data on the disk. If there were temporary data in RAM (random access memory) on the source machine before a shutdown, the application on the target system may have errors during startup and causing inconsistencies in, e.g., open transactions.
In respect to virtualized environments, e.g., the following techniques have been disclosed:
Document US2011/0066597A1 discloses a migration of persistent data of virtual machines between and across data stores. The method includes the steps of copying the persistent data at the source data store to the destination data store, updating a bitmap data structure during the copying step to indicate which blocks of the persistent data have been modified during the copying step, identifying the blocks that have been modified during the copying step using the bitmap data structure, and copying the identified blocks to the destination data store.
Document US2011/0179415A1 discloses that a virtual machine is migrated between a source cloud and a destination cloud. A temporary storage is mounted to a partition management firmware of the source cloud and to a partition management firmware of the destination cloud. A first storage location migration migrates the virtual machine from the source cloud to the at least one temporary storage. A second storage location migration migrates the virtual machine from the at least one temporary storage to a final destination storage of the destination cloud. The temporary storage is then un-mounted from the partition management firmware of the source cloud and from the partition management firmware of the destination cloud.
However, this virtual machine migration would not work if the application would not run in a virtual environment but in a physical environment, i.e., on an operating system that is running directly on a physical computer without using a hypervisor building a simulation or emulation of a hardware system.
Thus, there may be a need for a live-migration for applications running in physical environments.